type DescribableFunction = {
    description: string;
    (someArg: number): number
}

function MyCallSignatures(fn: DescribableFunction) {
    console.log(fn(1), fn.description)

}

function myFn(num1: number) {
    return num1
}

myFn.description = "123"

MyCallSignatures(myFn)

class Person {
}

interface ICTORPerson {
    new(): Person
}

function factory(fn: ICTORPerson) {
    const f = new fn()
    return f
}

console.log(factory(Person))



export { }